

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>File striping &mdash; Ceph Documentation</title>
  

  
  <link rel="stylesheet" href="../../_static/ceph.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/graphviz.css" type="text/css" />
  <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />

  
  
    <link rel="shortcut icon" href="../../_static/favicon.ico"/>
  

  
  

  

  
  <!--[if lt IE 9]>
    <script src="../../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
        <script src="../../_static/jquery.js"></script>
        <script src="../../_static/underscore.js"></script>
        <script src="../../_static/doctools.js"></script>
    
    <script type="text/javascript" src="../../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../../genindex/" />
    <link rel="search" title="Search" href="../../search/" />
    <link rel="next" title="FreeBSD Implementation details" href="../freebsd/" />
    <link rel="prev" title="纠删码存储池" href="../erasure-coded-pool/" /> 
</head>

<body class="wy-body-for-nav">

   
  <header class="top-bar">
    

















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../../" class="icon icon-home"></a> &raquo;</li>
        
          <li><a href="../internals/">Ceph 内幕</a> &raquo;</li>
        
      <li>File striping</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="../../_sources/dev/file-striping.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
  </header>
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search"  style="background: #eee" >
          

          
            <a href="../../">
          

          
            
            <img src="../../_static/logo.png" class="logo" alt="Logo"/>
          
          </a>

          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../search/" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../start/intro/">Ceph 简介</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../install/">安装 Ceph</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../cephadm/">Cephadm</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../rados/">Ceph 存储集群</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../cephfs/">Ceph 文件系统</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../rbd/">Ceph 块设备</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../radosgw/">Ceph 对象网关</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../mgr/">Ceph 管理器守护进程</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../mgr/dashboard/">Ceph 仪表盘</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../api/">API 文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../architecture/">体系结构</a></li>
<li class="toctree-l1"><a class="reference internal" href="../developer_guide/">开发者指南</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../internals/">Ceph 内幕</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../blkin/">Tracing Ceph With LTTng</a></li>
<li class="toctree-l2"><a class="reference internal" href="../blkin/#tracing-ceph-with-blkin">Tracing Ceph With Blkin</a></li>
<li class="toctree-l2"><a class="reference internal" href="../bluestore/">BlueStore Internals</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cache-pool/">Cache pool</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ceph_krb_auth/">如何配置好 Ceph Kerberos 认证的详细文档</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cephfs-mirroring/">CephFS Mirroring</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cephfs-reclaim/">CephFS Reclaim Interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cephfs-snapshots/">CephFS 快照</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cephx/">Cephx</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cephx_protocol/">Cephx 认证协议详细阐述</a></li>
<li class="toctree-l2"><a class="reference internal" href="../config/">配置管理系统</a></li>
<li class="toctree-l2"><a class="reference internal" href="../config-key/">config-key layout</a></li>
<li class="toctree-l2"><a class="reference internal" href="../context/">CephContext</a></li>
<li class="toctree-l2"><a class="reference internal" href="../continuous-integration/">Continuous Integration Architecture</a></li>
<li class="toctree-l2"><a class="reference internal" href="../corpus/">资料库结构</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cpu-profiler/">Oprofile 的安装</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cxx/">C++17 and libstdc++ ABI</a></li>
<li class="toctree-l2"><a class="reference internal" href="../deduplication/">去重</a></li>
<li class="toctree-l2"><a class="reference internal" href="../delayed-delete/">CephFS delayed deletion</a></li>
<li class="toctree-l2"><a class="reference internal" href="../dev_cluster_deployement/">开发集群的部署</a></li>
<li class="toctree-l2"><a class="reference internal" href="../dev_cluster_deployement/#id5">在同一机器上部署多套开发集群</a></li>
<li class="toctree-l2"><a class="reference internal" href="../development-workflow/">开发流程</a></li>
<li class="toctree-l2"><a class="reference internal" href="../documenting/">为 Ceph 写作文档</a></li>
<li class="toctree-l2"><a class="reference internal" href="../encoding/">序列化（编码、解码）</a></li>
<li class="toctree-l2"><a class="reference internal" href="../erasure-coded-pool/">纠删码存储池</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">File striping</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#ceph-file-layout">ceph_file_layout</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../freebsd/">FreeBSD Implementation details</a></li>
<li class="toctree-l2"><a class="reference internal" href="../generatedocs/">Ceph 文档的构建</a></li>
<li class="toctree-l2"><a class="reference internal" href="../health-reports/">Health Reports</a></li>
<li class="toctree-l2"><a class="reference internal" href="../iana/">IANA 号</a></li>
<li class="toctree-l2"><a class="reference internal" href="../kubernetes/">Hacking on Ceph in Kubernetes with Rook</a></li>
<li class="toctree-l2"><a class="reference internal" href="../libs/">库体系结构</a></li>
<li class="toctree-l2"><a class="reference internal" href="../logging/">集群日志的用法</a></li>
<li class="toctree-l2"><a class="reference internal" href="../logs/">调试日志</a></li>
<li class="toctree-l2"><a class="reference internal" href="../macos/">在 MacOS 上构建</a></li>
<li class="toctree-l2"><a class="reference internal" href="../messenger/">Messenger notes</a></li>
<li class="toctree-l2"><a class="reference internal" href="../mon-bootstrap/">Monitor bootstrap</a></li>
<li class="toctree-l2"><a class="reference internal" href="../mon-elections/">Monitor Elections</a></li>
<li class="toctree-l2"><a class="reference internal" href="../mon-on-disk-formats/">ON-DISK FORMAT</a></li>
<li class="toctree-l2"><a class="reference internal" href="../mon-osdmap-prune/">FULL OSDMAP VERSION PRUNING</a></li>
<li class="toctree-l2"><a class="reference internal" href="../msgr2/">msgr2 协议（ msgr2.0 和 msgr2.1 ）</a></li>
<li class="toctree-l2"><a class="reference internal" href="../network-encoding/">Network Encoding</a></li>
<li class="toctree-l2"><a class="reference internal" href="../network-protocol/">网络协议</a></li>
<li class="toctree-l2"><a class="reference internal" href="../object-store/">对象存储架构概述</a></li>
<li class="toctree-l2"><a class="reference internal" href="../osd-class-path/">OSD class path issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../peering/">互联</a></li>
<li class="toctree-l2"><a class="reference internal" href="../perf/">Using perf</a></li>
<li class="toctree-l2"><a class="reference internal" href="../perf_counters/">性能计数器</a></li>
<li class="toctree-l2"><a class="reference internal" href="../perf_histograms/">Perf histograms</a></li>
<li class="toctree-l2"><a class="reference internal" href="../placement-group/">PG （归置组）说明</a></li>
<li class="toctree-l2"><a class="reference internal" href="../quick_guide/">开发者指南（快速）</a></li>
<li class="toctree-l2"><a class="reference internal" href="../rados-client-protocol/">RADOS 客户端协议</a></li>
<li class="toctree-l2"><a class="reference internal" href="../rbd-diff/">RBD 增量备份</a></li>
<li class="toctree-l2"><a class="reference internal" href="../rbd-export/">RBD Export &amp; Import</a></li>
<li class="toctree-l2"><a class="reference internal" href="../rbd-layering/">RBD Layering</a></li>
<li class="toctree-l2"><a class="reference internal" href="../release-checklists/">Release checklists</a></li>
<li class="toctree-l2"><a class="reference internal" href="../release-process/">Ceph Release Process</a></li>
<li class="toctree-l2"><a class="reference internal" href="../seastore/">SeaStore</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sepia/">Sepia 社区测试实验室</a></li>
<li class="toctree-l2"><a class="reference internal" href="../session_authentication/">Session Authentication for the Cephx Protocol</a></li>
<li class="toctree-l2"><a class="reference internal" href="../testing/">测试笔记</a></li>
<li class="toctree-l2"><a class="reference internal" href="../versions/">Public OSD Version</a></li>
<li class="toctree-l2"><a class="reference internal" href="../vstart-ganesha/">NFS CephFS-RGW Developer Guide</a></li>
<li class="toctree-l2"><a class="reference internal" href="../wireshark/">Wireshark Dissector</a></li>
<li class="toctree-l2"><a class="reference internal" href="../zoned-storage/">Zoned Storage Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../osd_internals/">OSD 开发者文档</a></li>
<li class="toctree-l2"><a class="reference internal" href="../mds_internals/">MDS 开发者文档</a></li>
<li class="toctree-l2"><a class="reference internal" href="../radosgw/">RADOS 网关开发者文档</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ceph-volume/">ceph-volume 开发者文档</a></li>
<li class="toctree-l2"><a class="reference internal" href="../crimson/">Crimson developer documentation</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../governance/">项目管理</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../foundation/">Ceph 基金会</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../ceph-volume/">ceph-volume</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../releases/general/">Ceph 版本（总目录）</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../releases/">Ceph 版本（索引）</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../security/">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../glossary/">Ceph 术语</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../jaegertracing/">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../translation_cn/">中文版翻译资源</a></li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../">Ceph</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
<div id="dev-warning" class="admonition note">
  <p class="first admonition-title">Notice</p>
  <p class="last">This document is for a development version of Ceph.</p>
</div>
  <div id="docubetter" align="right" style="padding: 5px; font-weight: bold;">
    <a href="https://pad.ceph.com/p/Report_Documentation_Bugs">Report a Documentation Bug</a>
  </div>

  
  <div class="section" id="file-striping">
<h1>File striping<a class="headerlink" href="#file-striping" title="Permalink to this headline">¶</a></h1>
<p>The text below describes how files from Ceph file system clients are
stored across objects stored in RADOS.</p>
<div class="section" id="ceph-file-layout">
<h2>ceph_file_layout<a class="headerlink" href="#ceph-file-layout" title="Permalink to this headline">¶</a></h2>
<p>Ceph distributes (stripes) the data for a given file across a number
of underlying objects.  The way file data is mapped to those objects
is defined by the ceph_file_layout structure.  The data distribution
is a modified RAID 0, where data is striped across a set of objects up
to a (per-file) fixed size, at which point another set of objects
holds the file’s data.  The second set also holds no more than the
fixed amount of data, and then another set is used, and so on.</p>
<p>Defining some terminology will go a long way toward explaining the
way file data is laid out across Ceph objects.</p>
<ul class="simple">
<li><dl class="simple">
<dt>file</dt><dd><p>A collection of contiguous data, named from the perspective of
the Ceph client (i.e., a file on a Linux system using Ceph
storage).  The data for a file is divided into fixed-size
“stripe units,” which are stored in ceph “objects.”</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>stripe unit</dt><dd><p>The size (in bytes) of a block of data used in the RAID 0
distribution of a file.  All stripe units for a file have equal
size.  The last stripe unit is typically incomplete–i.e. it
represents the data at the end of the file as well as unused
“space” beyond it up to the end of the fixed stripe unit size.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>stripe count</dt><dd><p>The number of consecutive stripe units that constitute a RAID 0
“stripe” of file data.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>stripe</dt><dd><p>A contiguous range of file data, RAID 0 striped across “stripe
count” objects in fixed-size “stripe unit” blocks.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>object</dt><dd><p>A collection of data maintained by Ceph storage.  Objects are
used to hold portions of Ceph client files.</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>object set</dt><dd><p>A set of objects that together represent a contiguous portion of
a file.</p>
</dd>
</dl>
</li>
</ul>
<p>Three fields in the ceph_file_layout structure define this mapping:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">u32</span> <span class="n">fl_stripe_unit</span><span class="p">;</span>
<span class="n">u32</span> <span class="n">fl_stripe_count</span><span class="p">;</span>
<span class="n">u32</span> <span class="n">fl_object_size</span><span class="p">;</span>
</pre></div>
</div>
<p>(They are actually maintained in their on-disk format, __le32.)</p>
<p>The role of the first two fields should be clear from the
definitions above.</p>
<p>The third field is the maximum size (in bytes) of an object used to
back file data.  The object size is a multiple of the stripe unit.</p>
<p>A file’s data is blocked into stripe units, and consecutive stripe
units are stored on objects in an object set.  The number of objects
in a set is the same as the stripe count.  No object storing file
data will exceed the file’s designated object size, so after some
fixed number of complete stripes, a new object set is used to store
subsequent file data.</p>
<p>Note that by default, Ceph uses a simple striping strategy in which
object_size equals stripe_unit and stripe_count is 1.  This simply
puts one stripe_unit in each object.</p>
<p>Here’s a more complex example:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">file</span> <span class="n">size</span> <span class="o">=</span> <span class="mi">1</span> <span class="n">trillion</span> <span class="o">=</span> <span class="mi">1000000000000</span> <span class="nb">bytes</span>

<span class="n">fl_stripe_unit</span> <span class="o">=</span> <span class="mi">64</span><span class="n">KB</span> <span class="o">=</span> <span class="mi">65536</span> <span class="nb">bytes</span>
<span class="n">fl_stripe_count</span> <span class="o">=</span> <span class="mi">5</span> <span class="n">stripe</span> <span class="n">units</span> <span class="n">per</span> <span class="n">stripe</span>
<span class="n">fl_object_size</span> <span class="o">=</span> <span class="mi">64</span><span class="n">GB</span> <span class="o">=</span> <span class="mi">68719476736</span> <span class="nb">bytes</span>
</pre></div>
</div>
<p>This means:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">file</span> <span class="n">stripe</span> <span class="n">size</span> <span class="o">=</span> <span class="mi">64</span><span class="n">KB</span> <span class="o">*</span> <span class="mi">5</span> <span class="o">=</span> <span class="mi">320</span><span class="n">KB</span> <span class="o">=</span> <span class="mi">327680</span> <span class="nb">bytes</span>
<span class="n">each</span> <span class="nb">object</span> <span class="n">holds</span> <span class="mi">64</span><span class="n">GB</span> <span class="o">/</span> <span class="mi">64</span><span class="n">KB</span> <span class="o">=</span> <span class="mi">1048576</span> <span class="n">stripe</span> <span class="n">units</span>
<span class="n">file</span> <span class="nb">object</span> <span class="nb">set</span> <span class="n">size</span> <span class="o">=</span> <span class="mi">64</span><span class="n">GB</span> <span class="o">*</span> <span class="mi">5</span> <span class="o">=</span> <span class="mi">320</span><span class="n">GB</span> <span class="o">=</span> <span class="mi">343597383680</span> <span class="nb">bytes</span>
    <span class="p">(</span><span class="n">also</span> <span class="mi">1048576</span> <span class="n">stripe</span> <span class="n">units</span> <span class="o">*</span> <span class="mi">327680</span> <span class="nb">bytes</span> <span class="n">per</span> <span class="n">stripe</span> <span class="n">unit</span><span class="p">)</span>
</pre></div>
</div>
<p>So the file’s 1 trillion bytes can be divided into complete object
sets, then complete stripes, then complete stripe units, and finally
a single incomplete stripe unit:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">-</span> <span class="mi">1</span> <span class="n">trillion</span> <span class="nb">bytes</span> <span class="o">/</span> <span class="mi">320</span><span class="n">GB</span> <span class="n">per</span> <span class="nb">object</span> <span class="nb">set</span> <span class="o">=</span> <span class="mi">2</span> <span class="n">complete</span> <span class="nb">object</span> <span class="n">sets</span>
    <span class="p">(</span><span class="k">with</span> <span class="mi">312805232640</span> <span class="nb">bytes</span> <span class="n">remaining</span><span class="p">)</span>
<span class="o">-</span> <span class="mi">312805232640</span> <span class="nb">bytes</span> <span class="o">/</span> <span class="mi">320</span><span class="n">KB</span> <span class="n">per</span> <span class="n">stripe</span> <span class="o">=</span> <span class="mi">954605</span> <span class="n">complete</span> <span class="n">stripes</span>
    <span class="p">(</span><span class="k">with</span> <span class="mi">266240</span> <span class="nb">bytes</span> <span class="n">remaining</span><span class="p">)</span>
<span class="o">-</span> <span class="mi">266240</span> <span class="nb">bytes</span> <span class="o">/</span> <span class="mi">64</span><span class="n">KB</span> <span class="n">per</span> <span class="n">stripe</span> <span class="n">unit</span> <span class="o">=</span> <span class="mi">4</span> <span class="n">complete</span> <span class="n">stripe</span> <span class="n">units</span>
    <span class="p">(</span><span class="k">with</span> <span class="mi">4096</span> <span class="nb">bytes</span> <span class="n">remaining</span><span class="p">)</span>
<span class="o">-</span> <span class="ow">and</span> <span class="n">the</span> <span class="n">final</span> <span class="n">incomplete</span> <span class="n">stripe</span> <span class="n">unit</span> <span class="n">holds</span> <span class="n">those</span> <span class="mi">4096</span> <span class="nb">bytes</span><span class="o">.</span>
</pre></div>
</div>
<p>The ASCII art below attempts to capture this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>
  <span class="o">/</span><span class="nb">object</span>  <span class="mi">0</span>\ <span class="o">/</span><span class="nb">object</span>  <span class="mi">1</span>\ <span class="o">/</span><span class="nb">object</span>  <span class="mi">2</span>\ <span class="o">/</span><span class="nb">object</span>  <span class="mi">3</span>\ <span class="o">/</span><span class="nb">object</span>  <span class="mi">4</span>\
  <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span>
  <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span>
<span class="n">o</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="n">stripe</span> <span class="mi">0</span>
<span class="n">b</span> <span class="o">|</span>     <span class="mi">0</span>   <span class="o">|</span> <span class="o">|</span>     <span class="mi">1</span>   <span class="o">|</span> <span class="o">|</span>     <span class="mi">2</span>   <span class="o">|</span> <span class="o">|</span>     <span class="mi">3</span>   <span class="o">|</span> <span class="o">|</span>     <span class="mi">4</span>   <span class="o">|</span>
<span class="n">j</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="n">e</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span>
<span class="n">c</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="n">stripe</span> <span class="mi">1</span>
<span class="n">t</span> <span class="o">|</span>     <span class="mi">5</span>   <span class="o">|</span> <span class="o">|</span>     <span class="mi">6</span>   <span class="o">|</span> <span class="o">|</span>     <span class="mi">7</span>   <span class="o">|</span> <span class="o">|</span>     <span class="mi">8</span>   <span class="o">|</span> <span class="o">|</span>     <span class="mi">9</span>   <span class="o">|</span>
  <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="n">s</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span>
<span class="n">e</span>       <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>
<span class="n">t</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span>
  <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="mi">0</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="n">stripe</span>
  <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="mi">1048575</span>
  <span class="o">|</span> <span class="mi">5242875</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242876</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242877</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242878</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242879</span> <span class="o">|</span>
  \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span>

   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>
  <span class="o">/</span><span class="nb">object</span>  <span class="mi">5</span>\ <span class="o">/</span><span class="nb">object</span>  <span class="mi">6</span>\ <span class="o">/</span><span class="nb">object</span>  <span class="mi">7</span>\ <span class="o">/</span><span class="nb">object</span>  <span class="mi">8</span>\ <span class="o">/</span><span class="nb">object</span>  <span class="mi">9</span>\
  <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span>
  <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="n">stripe</span>
<span class="n">o</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="mi">1048576</span>
<span class="n">b</span> <span class="o">|</span> <span class="mi">5242880</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242881</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242882</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242883</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242884</span> <span class="o">|</span>
<span class="n">j</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="n">e</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="n">stripe</span>
<span class="n">c</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="mi">1048577</span>
<span class="n">t</span> <span class="o">|</span> <span class="mi">5242885</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242886</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242887</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242888</span> <span class="o">|</span> <span class="o">|</span> <span class="mi">5242889</span> <span class="o">|</span>
  <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="n">s</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span>
<span class="n">e</span>       <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>
<span class="n">t</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span>
  <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="mi">1</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="n">stripe</span>
  <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="mi">2097151</span>
  <span class="o">|</span> <span class="mi">10485755</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485756</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485757</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485758</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485759</span><span class="o">|</span>
  \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span>

   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>   <span class="n">_________</span>
  <span class="o">/</span><span class="nb">object</span> <span class="mi">10</span>\ <span class="o">/</span><span class="nb">object</span> <span class="mi">11</span>\ <span class="o">/</span><span class="nb">object</span> <span class="mi">12</span>\ <span class="o">/</span><span class="nb">object</span> <span class="mi">13</span>\ <span class="o">/</span><span class="nb">object</span> <span class="mi">14</span>\
  <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span> <span class="o">+=========+</span>
  <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="n">stripe</span>
<span class="n">o</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="mi">2097152</span>
<span class="n">b</span> <span class="o">|</span> <span class="mi">10485760</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485761</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485762</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485763</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485764</span><span class="o">|</span>
<span class="n">j</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="n">e</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="n">stripe</span>
<span class="n">c</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="mi">2097153</span>
<span class="n">t</span> <span class="o">|</span> <span class="mi">10485765</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485766</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485767</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485768</span><span class="o">|</span> <span class="o">|</span> <span class="mi">10485769</span><span class="o">|</span>
  <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="n">s</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span>
<span class="n">e</span>       <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>           <span class="o">.</span>
<span class="n">t</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span> <span class="o">|</span>     <span class="o">.</span>   <span class="o">|</span>
  <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
<span class="mi">2</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="n">stripe</span>
  <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="mi">3051756</span>
  <span class="o">|</span> <span class="mi">15258780</span><span class="o">|</span> <span class="o">|</span> <span class="mi">15258781</span><span class="o">|</span> <span class="o">|</span> <span class="mi">15258782</span><span class="o">|</span> <span class="o">|</span> <span class="mi">15258783</span><span class="o">|</span> <span class="o">|</span> <span class="mi">15258784</span><span class="o">|</span>
  <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span> <span class="o">|---------|</span>
  <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="o">|</span> <span class="p">(</span><span class="n">partial</span><span class="o">|</span> <span class="p">(</span><span class="n">partial</span>
  <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>   <span class="n">unit</span>  <span class="o">|</span> <span class="o">|</span>  <span class="n">stripe</span> <span class="o">|</span> <span class="n">stripe</span>
  <span class="o">|</span> <span class="mi">15258785</span><span class="o">|</span> <span class="o">|</span> <span class="mi">15258786</span><span class="o">|</span> <span class="o">|</span> <span class="mi">15258787</span><span class="o">|</span> <span class="o">|</span> <span class="mi">15258788</span><span class="o">|</span> <span class="o">|</span>  <span class="n">unit</span><span class="p">)</span>  <span class="o">|</span> <span class="mi">3051757</span><span class="p">)</span>
  \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span> \<span class="o">=========/</span>
</pre></div>
</div>
</div>
</div>



           </div>
           
          </div>
          <footer>
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
        <a href="../freebsd/" class="btn btn-neutral float-right" title="FreeBSD Implementation details" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
        <a href="../erasure-coded-pool/" class="btn btn-neutral float-left" title="纠删码存储池" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>
        &#169; Copyright 2016, Ceph authors and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0).

    </p>
  </div> 

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>